package com.cms.recursoshumanos.activity.eventos.cumpleanos;

import java.lang.ref.WeakReference;

import com.cms.recursoshumanos.activity.main.MainRecursosHumanosActivity;
import com.cms.recursoshumanos.cache.ListaCumpleanosCache;
import com.cms.recursoshumanos.handler.ImagenesHandler;
import com.cms.recursoshumanos.object.Contacto;
import com.cms.recursoshumanos.utilities.Tool;
import com.example.frontendrecursoshumanos.R;

import android.os.AsyncTask;
import android.os.Bundle;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class DetailContactoCumple extends MainRecursosHumanosActivity 
{
	private Contacto elContacto;
	private int persona_id;
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_detail_contacto_cumple);

		Bundle bundle = getIntent().getExtras();
		persona_id = bundle.getInt("id_persona");
		elContacto = ListaCumpleanosCache.getInstance().getListaCumple().getContactoByPersonaId(persona_id);

		setComponents();
	}

	
	private void setComponents()
	{
		LinearLayout layout_info_general = (LinearLayout) findViewById(R.id.llInformacionGeneral);
		RelativeLayout layout_empleado_portait = (RelativeLayout) findViewById(R.id.rlContactoPortrait);
		
		TextView nombre_empleado_portait = (TextView) layout_empleado_portait.findViewById(R.id.tvPortaitNombreContacto);
		TextView apellido_empleado_protait = (TextView) layout_empleado_portait.findViewById(R.id.tvPortaitApellidoContacto);
		ImageView foto_empleado_portait = (ImageView) layout_empleado_portait.findViewById(R.id.ivFotoContacto);
		
		TextView nombre_persona_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueNombreContacto);
		TextView apellido_persona_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueApellidoContacto);
		TextView fecha_nac_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueFechaNacContacto);
		TextView sexo_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueSexoContacto);
		TextView nro_tlf_1_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueNroTelefono1Contacto);
		TextView nro_tlf_2_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueNroTelefono2Contacto);
		TextView email_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueEmailContacto);

		TextView nombre_departamento_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueNombreDepartamento);

		TextView nombre_sede_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueNombreSede);
		TextView nombre_cargo_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueNombreCargo);
		
		
		
				
		//*--------------Seteo de Portait------------------------------------
		nombre_empleado_portait.setText(elContacto.getEmpleado().getPersona().getNombre_Persona_1());
		apellido_empleado_protait.setText(elContacto.getEmpleado().getPersona().getApellido_Persona_1());
		if (elContacto.getEmpleado().getPersona().getFoto_Persona() != null)
		{
			foto_empleado_portait.setImageBitmap(elContacto.getEmpleado().getPersona().getFoto_Persona());
		}
		else
		{
			new DownloadImageTask(DetailContactoCumple.this).execute(elContacto);
		}
		
		
		
		//*--------------Seteo de Detalle------------------------------------
		nombre_persona_second_row.setText(elContacto.getEmpleado().getPersona().getNombre_Persona_1()+" "+
											(elContacto.getEmpleado().getPersona().getNombre_Persona_2() == null
											? "" : elContacto.getEmpleado().getPersona().getNombre_Persona_2()) );
		apellido_persona_second_row.setText(elContacto.getEmpleado().getPersona().getApellido_Persona_1()+" "+
											(elContacto.getEmpleado().getPersona().getApellido_Persona_2() == null
											? "" : elContacto.getEmpleado().getPersona().getApellido_Persona_2()));
		fecha_nac_second_row.setText(Tool.getInstance().
										parseDateToString(elContacto.getEmpleado().getPersona().getFecha_Nacimiento(), 
										6));
		sexo_second_row.setText(elContacto.getEmpleado().getPersona().getSexo_Persona());
		nro_tlf_1_second_row.setText(elContacto.getEmpleado().getPersona().getTelefono_Persona_1());
		
		LinearLayout llNroTelf2 = (LinearLayout) findViewById(R.id.trNroTelefono2Contacto);
		if (elContacto.getEmpleado().getPersona().getTelefono_Persona_2() != null)
		{
			nro_tlf_2_second_row.setText(elContacto.getEmpleado().getPersona().getTelefono_Persona_2());
		}
		else
		{
			llNroTelf2.setVisibility(View.GONE);
		}
		
		email_second_row.setText(elContacto.getEmpleado().getPersona().getEmailPersona());

		nombre_departamento_second_row.setText(elContacto.getEmpleado().getDepartamento().getNombre_Departamento());
		nombre_sede_second_row.setText(elContacto.getEmpleado().getSede().getNombre_Sede());
		nombre_cargo_second_row.setText(elContacto.getEmpleado().getCargoEmpleado());
		
		

	}
	

	
	private static class DownloadImageTask extends AsyncTask<Contacto, Void, Bitmap> 
	{
		WeakReference<DetailContactoCumple> context;
		DetailContactoCumple activity;
		private Contacto elContacto;
	 
		public DownloadImageTask(DetailContactoCumple detailContactoActivity) 
		{	
			context = new WeakReference<DetailContactoCumple>(detailContactoActivity);
			this.activity = context.get();
		}
    	
		@Override
		protected Bitmap doInBackground(Contacto... elContactos) 
		{
			ImagenesHandler handler = new ImagenesHandler();
			this.elContacto = elContactos[0];
			return handler.GetImage(this.elContacto.getEmpleado().getPersona().getUrlFoto());
		}
		
		@Override
		protected void onPostExecute(Bitmap poster) 
		{  
			RelativeLayout layout_familiar_portrait = (RelativeLayout) activity.findViewById(R.id.rlContactoPortrait);
			ImageView itemImageView = (ImageView) layout_familiar_portrait.findViewById(R.id.ivFotoContacto);
	        
	        if (itemImageView != null)
	        {
        		if(poster != null)
	        	{
        			itemImageView.setImageBitmap(poster);
        			this.elContacto.getEmpleado().getPersona().setFoto_Persona(poster);
    				//ListaContactosCache.getInstance().getListaContacto().getListaContactoAtIndex(pos_lista_contacto).actualizar;
	        	}
	        }
		}
    }

}

